package com.gpframework.module.system.domain.req;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.gpframework.common.utils.StringUtils;
import com.gpframework.module.base.domain.req.BaseReq;
import com.gpframework.module.system.domain.SmsSendLog;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * gpframework
 * ==================================================================
 * CopyRight © 2017-2099 广州宏略信息科技有限公司
 * 官网地址：http://www.greatplan.com.cn
 * <p>
 * ------------------------------------------------------------------
 * 这不是一个自由软件！未经本公司授权您只能在不用于商业目的的前提下
 * 对本程序代码进行修改和使用；不允许对本程序代码以任何目的的再发布。
 * ==================================================================
 *
 * @ClassName SmsSendLogReq
 * @Author gpframework
 * @Date 2020-12-29
 * @Version 1.0.0
 * @Description 列表查询信息体
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class SmsSendLogReq extends BaseReq {
    private static final long serialVersionUID = 1L;
    /**
     * 品牌id
     */
    @ApiModelProperty("品牌id")
    private Long brandId;
    /**
     * 店铺id
     */
    @ApiModelProperty("店铺id")
    private Long storeId;
    @ApiModelProperty("发送类型")
    private String smsType;
    @ApiModelProperty("发送模板")
    private String templateCode;
    @ApiModelProperty("接收手机")
    private String mobile;
    @ApiModelProperty("发送状态 true/false")
    private String sendStatus;

    /**
     * @Description 生成查询wrapper
     * @Author greatplan@qq.com
     * @Date 2020-11-04 16:04
     * @Param [lqw]
     * @Param [isVO] 是否vo查询体，true的话走的是mapper.xml里面的查询语句，不过查询语法还是mybatis-plus，主要用于某些关联查询出一些非数据表字段
     * @Return void
     */
    public void generatorQuery(QueryWrapper<SmsSendLog> lqw, boolean isVo) {
        String alias = "";
        if (isVo) {
            alias = "o.";
            lqw.eq(alias + "del_status", 0);
        }
        if (StringUtils.isNotBlank(this.getSmsType())) {
            lqw.eq(alias + "sms_type", this.getSmsType());
        }
        if (StringUtils.isNotBlank(this.getTemplateCode())) {
            lqw.eq(alias + "template_code", this.getTemplateCode());
        }
        if (StringUtils.isNotBlank(this.getMobile())) {
            lqw.eq(alias + "mobile", this.getMobile());
        }
        if (StringUtils.isNotBlank(this.getSendStatus())) {
            lqw.eq(alias + "send_status", this.getSendStatus());
        }
    }
}
